﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Text;
using System.Data;

using YouHP.IDAL;
using YouHP.Model;

namespace YouHP.IDAL
{
    public interface IPatientSymptom
    {
        #region 病人症状
        // 添加单条的症状历史记录
        bool AddSymptomHistory(SymptomHistoryInfo shInfo);

        // 取得病人的某种症状的当前程度
        SymptomHistoryInfo GetCurrentSymptom(int prId, int symptomId);

        // 根据历史Id获得症状历史记录信息
        SymptomHistoryInfo GetSymptomHistory(int prId, int historyId);

        //判断历史记录表中是否已存在病人指定时间对应的记录
        bool CheckSymptomHistory(int prId, int symptomId, DateTime recordDate);

        // 修改单条的症状历史记录
        bool UpdateSymptomHistory(SymptomHistoryInfo shInfo);

        // 批量的症状历史记录提交
        bool AddSymptomSurvey(List<SymptomHistoryInfo> shList);

        // 获得批量的症状历史记录
        List<SymptomHistoryInfo> GetSymptomSurvey(int prId, int surveyId);

        // 批量的症状历史记录修改
        bool UpdateSymptomSurvey(int surveyId, List<SymptomHistoryInfo> shList);

        // 根据SurveyId删除症状历史记录信息
        bool DeleteSymptomSurvey(int prId, int surveyId);

        // 删除单条症状历史记录信息
        bool DeleteSymptomHistory(int prId, int historyId);

        // 取得病人的当前症状列表
        List<SymptomHistoryInfo> GetCurrentSymptomList(int prId);

        // 获得PatientCurrentSymptom表中相关的记录
        List<SymptomHistoryInfo> GetCurrentSymptomListBySymptomAndDegreeValue(int symptomId, int degreeValue);

        //取得某段时间内的所有症状记录历史
        List<SymptomHistoryInfo> GetSymptomHistoryList(int prId, DateTime startDate, DateTime endDate);

        // 取得病人针对某种症状的症状记录历史
        List<SymptomHistoryInfo> GetSymptomHistoryList(int prId, int symId, int pageSize, int pageIndex, out int count);
        #endregion
    }
}
